package com.hsmpay.mobile.service.trans.cardcer.impl;

import com.hsmpay.common.service.impl.BaseServiceSupport;
import com.hsmpay.mobile.pojo.trans.cardcer.CardCer;
import com.hsmpay.mobile.service.trans.cardcer.CardCerService;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 卡号认证 服务接口 cardCerService
 * 对应pojo CardCerDao
 *
 * @param <>
 * @param <>
 * @author 颜铃璋
 *         创建时间：2014-5-07
 */
@Service("cardCerService")
public class CardCerServiceImpl extends BaseServiceSupport<CardCer, Long> implements CardCerService<CardCer, Long> {
//	@Resource(name="cardCerLogDao")
//	private CardCerLogDao<CardCerLog, Long> cardCerLogDao;

    /**
     * 根据卡号 查询状态
     *
     * @param
     * @return
     * @throws Exception
     */
    public Integer getCardCerStatusByBankCard(String bankCard, int verifiType) throws Exception {
        CardCer cardCer = getCardCerSuccByBankCard(bankCard, verifiType);
        if (null == cardCer || null == cardCer.getStatus()) {
            return 3;
        }
        return cardCer.getStatus();
    }

    /**
     * 秒到根据用户跟卡号 查询状态
     * @param cardNumber
     * @param userId
     * @param verifiType
     * @return
     * @throws Exception
     */
    public int getSecondsToCardCerStatusByBankCard(String cardNumber, long userId, int verifiType) throws Exception {
        CardCer cardCer = new CardCer();
        cardCer.setStatus(1);
        cardCer.setBankCard(cardNumber);
        cardCer.setVerifiType(verifiType);
        cardCer.setUserId(userId);
        List<CardCer> cardCerList = searchEntityList(cardCer);
        if (null != cardCerList && cardCerList.size()>0){
            return 1;

        }else{
            cardCer.setStatus(2);
            cardCer.setBankCard(cardNumber);
            cardCer.setVerifiType(verifiType);
            cardCer.setUserId(userId);
            cardCerList = searchEntityList(cardCer);
            if (null != cardCerList && cardCerList.size()>0){
                return 2;
            }
        }
        return 0;
    }

    /**
     * 根据卡号 查询
     *
     * @param bankCard
     * @return
     * @throws Exception
     */
    public CardCer getCardCerSuccByBankCard(String bankCard, int verifiType) throws Exception {
        CardCer cardCer = new CardCer();
        cardCer.setStatus(1);
        cardCer.setBankCard(bankCard);
        cardCer.setVerifiType(verifiType);
        List<CardCer> cardCerList = searchEntityList(cardCer);
        if (null != cardCerList && cardCerList.size() > 0) {
            return cardCerList.get(0);
        }
        return null;
    }

    /**
     * 添加或修改卡号认证
     *
     * @param cardCer
     * @return
     * @throws Exception
     */
    public Long insertOrUpdateCardCer(CardCer cardCer) throws Exception {
        Long cardCerId = cardCer.getId();
        if (null != cardCerId) {//修改
            updateEntity(cardCer);
        } else {//添加
            cardCerId = insertEntity(cardCer);
        }

//		CardCerLog cardCerLog = new CardCerLog();
//		BeanUtils.copyProperties(cardCer,cardCerLog);
//		cardCerLog.setId(null);
//		cardCerLog.setCardCerId(cardCerId);
//		cardCerLogDao.insertEntity(cardCerLog);
        return cardCerId;
    }
}
